package com.example.gulimall.cart.config;

import com.example.gulimall.cart.interceptor.CartInterceptor;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;

/**
 * 注册拦截器使其生效
 *
 * @author gulin
 * @date 2021/8/17 10:28
 */
@Configuration
public class GulimallWebConfig implements WebMvcConfigurer {

    /**
     * 添加 Spring MVC 生命周期拦截器，用于控制器方法调用的预处理和后处理。 拦截器可以注册以应用于所有请求或仅限于 URL 模式的子集。
     * 请注意，此处注册的拦截器仅适用于控制器而不适用于资源处理程序请求。 要拦截对静态资源的请求，请声明MappedInterceptor bean
     * 或通过扩展WebMvcConfigurationSupport切换到高级配置模式，然后覆盖resourceHandlerMapping 。
     *
     * @param registry
     * @return: void
     * @author gulin
     * @date 10:33 2021/8/17
     **/
    @Override
    public void addInterceptors(InterceptorRegistry registry) {
        registry.addInterceptor(new CartInterceptor()).addPathPatterns("/**");
    }
}
